package modele;

import java.io.Writer;
import java.rmi.Remote;
import java.util.Date;
import java.util.SortedSet;

public interface Proposition extends Remote {

    // les assesseurs
    public Date getDate() throws Exception;
    public Parcours getParcours() throws Exception;
    public SortedSet<UniteEnseignement> getUesChoix1() throws Exception;
    public SortedSet<UniteEnseignement> getUesChoix2() throws Exception;
    public String getReponseCoupon() throws Exception;
    public void setDate() throws Exception;
    public void setDate(Date d) throws Exception;
    public void setParcours(Parcours p) throws Exception;
    public boolean addUesChoix1(UniteEnseignement ue) throws Exception;
    public boolean addUesChoix2(UniteEnseignement ue) throws Exception;
    public void setReponseCoupon(String st) throws Exception;
    public void setProposition(Proposition prop) throws Exception;

    // les algos
    public int[] valeur(Demande demande) throws Exception;
    public int compareTo(Proposition prop, Demande demande) throws Exception;
    public boolean isValide() throws Exception;
    public boolean isRetenu() throws Exception;
    public boolean affecter(Fiche fic) throws Exception;

    // les sorties
    public void imprimer(Writer file)
	throws Exception;
    public void imprimerAffichage(Writer file) throws Exception;
    public void imprimerDossier(Writer file) throws Exception;
    public void imprimerCourrier(Writer file, boolean premier)
	throws Exception;
    public void imprimerRetenuTexteBibli(Writer file) throws Exception;
    public void imprimerRetenuTexteUes(Writer file) throws Exception;
}
